P H P   -   Personal Home Page

9.   spezielle datei-operationen

9.5  systemkommando ausführen

Die beiden folgenden funktionen führen ein systemkommando auf dem PC des anwenders aus; sie können auch dazu verwendet werden, ein programm zu starten. Wenn das im hintergrund läuft, müssen die ausgaben des programms in eine datei umgelenkt werden, weil sonst PHP hängt, bis das programm zu ende ist. Die ausgaben von systemkommandos sind meist nicht besonders gut geeignet, um direkt vom browser ausgegeben zu werden, d.h. man leitet sie am besten in eine datei um.

9.5.1  funktion system
Die funktion führt ein systemkommando aus; wenn mit dem kommando ein programm gestartet wird, das im hintergrund abläuft, müssen die ausgaben des programms in eine datei umgelenkt werden, weil sonst PHP hängt, bis das programm zu ende ist.

$zeile = system ("kdo" [, $wert]);

kdokommando, das ausgeführt werden soll, kann auch in einer variablen stehen. Die ausgaben des kommandos sind meist nicht dafür geeignet, direkt im browser ausgegeben zu werden, d.h. man leitet sie am besten in eine datei um (vgl. beispiel).
$zeilevariable mit der letzte zeile der kommando-ausgabe
$wertvariable mit dem rückgabewert des kommandos

9.5.2  funktion exec
Die funktion führt ein systemkommando aus; wenn mit dem kommando ein programm gestartet wird, das im hintergrund abläuft, müssen die ausgaben des programms in eine datei umgelenkt werden, weil sonst PHP hängt, bis das programm zu ende ist.

$zeile = exec ("kdo" [, $output] [, $wert] );

kdokommando, das ausgeführt werden soll, kann auch in einer variablen stehen. Die ausgaben des kommandos sind meist nicht dafür geeignet, direkt im browser ausgegeben zu werden, d.h. man leitet sie am besten in eine variable oder eine datei um (vgl. beispiel).
$zeilevariable mit der letzte zeile der kommando-ausgabe wenn die ausgaben umgelenkt werden, wird $zeile nicht versorgt.
$wertvariable mit dem rückgabewert des kommandos
$outputarray, in den alle ausgaben des kommandos gespeichert werden. Enthält der array bereits daten sollte man sie vorher mit unset löschen. Der inhalt des array eignet sich nicht besonders gut für eine direkte ausgabe im browser.

beispiele
Bei den drei beispielen wird das systemkommando dir ausgeführt, mit dem der inhalt des ordners doku angezeigt wird. Bei der angabe eines unterordners ist nicht der schrägstrich sondern backslash zu verwenden. Beim ersten und dritten beispiel werden die ausgaben des kommandos in eine datei umgelenkt, beim zweiten in eine variable. Der inhalt der variable (s.u) ist eher unbrauchbar, während die beiden textdateien ein sehr ordentliches ergebnis zeigen.

rückgabe kommando system: $wert = 0
ergebnis in datei ergebnis1.txt

kommando exec liefert in variable $ergebnis

Array ( [0] => CSS HTML JAVASCR MYSQL PHP doku-inc.php )

rückgabe kommando exec: $wert = 0

kommando exec liefert in datei ergebnis2.txt

inhalt der dateien ergebnis1.txt bzw ergebnis2.txt


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT